import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';

class HtmlTags2 extends StatefulWidget {
  final Map params;
  final String str;
  const HtmlTags2({Key key, this.params, this.str}) : super(key: key);

  @override
  _HtmlTagsState createState() {
    print('createState');
    return _HtmlTagsState();
  }
}

class HtmlTags extends StatefulWidget {
  @override
  _HtmlTagsState createState() {
    print('createState');
    return _HtmlTagsState();
  }
}

class _HtmlTagsState extends State<HtmlTags2>
    with SingleTickerProviderStateMixin {
  AnimationController _controller;

  String text =
      "<div class=\"article-content\"><p><span class=\"bjh-p\">（观察者网讯 文/一鸣 编辑/尹哲）</span></p><p><span class=\"bjh-p\">要是说“双11”是线上电商的一场狂欢，那“双12”就是线下商家们的一场硬仗。</span></p><p><span class=\"bjh-p\">往年这一天，线下商家都要应对众多持线上优惠券的顾客，门店被“挤爆”、拙于应对也不鲜见。不过，位于世博源的新白鹿餐厅并不担心这个。</span></p><p><span class=\"bjh-p\">12月12日，这家刚刚开业一周的餐厅，虽然12点一过门口就开始排起了等位的长队，但后厨的应对却从容不迫，而这一切都得益于其进行的数字化改造。</span></p><p><span class=\"bjh-p\">在新白鹿的后厨，放置了2台IOT烹饪机器人，观察者网在现场看到，一个工作人员同时操作两台机器，根据提示操作将食材投入机器人的“肚子”中，一盘鱼香肉丝，3分钟就能通过这台烹饪机器人完成，口感和厨师炒出来的没有什么差别。</span></p><div class=\"img-container\"><img class=\"large\" src=\"https://pics0.baidu.com/feed/a1ec08fa513d26974432515d90c356fe4216d88f.jpeg?token=bad7e9a9d9497643190baae07b97c37c&amp;s=C81245994A123EDE45A87D07010070C1\" data-loaded=\"0\"></div><p><span class=\"bjh-p\">后厨相关负责人向观察者网介绍：“这两台机器人炒菜机可以炒几百道菜，但目前适配我们门店的菜大约为5道菜，包括鱼香肉丝、辣椒小炒肉等等，现在客人点单中的这些菜品，都由机器人掌勺了。”</span></p><p><span class=\"bjh-p\">机器人的到来，也让菜肴的口味更加精准。上述负责人介绍，原先厨师由于个体差异，每个人在盐、糖等调味品的掌控上有所差别，做出的菜味道也不相同。</span></p><p><span class=\"bjh-p\">而IOT烹饪机器人解决方案，因为通过后台设置，可精确控制油温、油量、调料克数、勾芡的程度，让变化莫测的中餐在数字化运作下，成为可量化、标准化的菜式。</span></p><div class=\"img-container\"><img class=\"normal\" width=\"399px\" data-loadfunc=\"0\" src=\"https://pics6.baidu.com/feed/42166d224f4a20a4de2609a52e6a7c27720ed052.jpeg?token=7c39c67e99b40c77c361ab1bcda8bcdb&amp;s=BF914883CA135FC60E09ACB10300F043\" data-loaded=\"0\"></div><p><span class=\"bjh-p\">机器人炒出来的鱼香肉丝</span></p><p><span class=\"bjh-p\">而IOT烹饪机器人的到来还带来效率上的提升。新白鹿董事长周文源向观察者网介绍，“门店进行过测算，一人一锅一天能生产117道菜，一人一套物联网烹饪机器人可制作超过200道菜。”</span></p><p><span class=\"bjh-p\">他进一步表示，随着熟练度的提升，一个人可以同时操控三套机器人，这样可增加接近5倍的产能。同时，岗位要求也从有经验的厨师变成能操作机器的普通员工，大大节省了餐厅的成本。</span></p><p><span class=\"bjh-p\">除了IOT烹饪机器人，新白鹿的这家后厨还进行了数字化的升级，打通了顾客和后厨之间的信息通道。</span></p><p><span class=\"bjh-p\">观察者网在后厨屏幕上看到，顾客所点菜肴会自动跳出，按时间先后顺序排列，同一种菜被自动归类，利于厨师炒菜；哪些菜催时间，哪些菜是新加的，厨师们只要看一眼屏幕就了然于胸。</span></p><div class=\"img-container\"><img class=\"large\" data-loadfunc=\"0\" src=\"https://pics4.baidu.com/feed/4b90f603738da977f48e204f73691c1c8718e3f4.png?token=62a5dab39efd83a3238a7241effcae4f&amp;s=EE3205C712F239925D2565350300C002\" data-loaded=\"0\"></div><p><span class=\"bjh-p\">相关负责人介绍，以前这些菜肴信息主要靠服务员手写、厨师现场整理，效率低还容易出错；但现在有了可视化数据后，厨师能精确掌握每一份菜的进度，大大提高效率。</span></p><p><span class=\"bjh-p\">“餐饮行业是传统行业，以前是靠天吃饭，但外卖诞生了，餐厅就有了调节的空间。”周文源介绍，这家餐厅开业之前，公司管理层讨论了一个月，如今开业一个星期，效果斐然，“传统像我们这种面积400-500平米的餐厅，后厨需要35个人以上，但因数字化系统，现在只需要大约25个人，”他说。</span></p><p><span class=\"bjh-p\">周文源表示，世博源这家智慧门店运转流畅之后，其他门店也将进行智慧化改造。</span></p></div>";

  @override
  //插入渲染树时调用，只调用一次，
  void initState() {
    super.initState();
    print('initState');
    print(widget.str);
    print(widget.params);
    _controller = AnimationController(vsync: this);
  }

  @override
  //当State对象从树中被永久移除时调用；通常在此回调中释放资源。
  void dispose() {
    super.dispose();
    print('dispose');
    _controller.dispose();
    print(context);
  }

  @override
  //当State对象从树中被移除时，会调用此回调。
  void deactivate() {
    super.deactivate();
    print('deactivate');
    print(context);
  }

  @override
  //当State对象的依赖发生变化时会被调用；
  //1、创建时候在initState 之后被调用
  //2、在依赖的InheritedWidget发生变化的时候会被调用
  void didChangeDependencies() {
    super.didChangeDependencies();
    print('didChangeDependencies');
  }

  @override
  // 此回调是专门为了开发调试而提供的，在热重载(hot reload)时会被调用，此回调在Release模式下永远不会被调用。
  void reassemble() {
    super.reassemble();
    print('热重载reassemble');
  }

  @override
  //组件状态改变时候调用，可能会调用多次
  void didUpdateWidget(HtmlTags2 oldWidget) {
    // TODO: implement didUpdateWidget
    super.didUpdateWidget(oldWidget);
    print('热重载didUpdateWidget');
  }

  @override
  //它主要是用于构建Widget子树的，调用次数：多次，初始化之后开始绘制界面，当setState触发的时候会再次被调用
  Widget build(BuildContext context) {
    print('build');
    return Scaffold(
      appBar: AppBar(
        title: Text('环境配套'),
      ),
      backgroundColor: Colors.white,
      body: CustomScrollView(
        shrinkWrap: true,
        slivers: <Widget>[
          SliverList(
            delegate: SliverChildListDelegate([
              Html(
                data: text,
              ),
              Html(
                data: text,
              )
            ]),
          )
        ],
      ),
    );
  }
}
